Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Types (and use latest barretenberg) #305

Merged
merged 8 commits into from
Apr 26, 2023
Merged

Conversation

suyash67
Copy link
Contributor

@suyash67 suyash67 commented Apr 19, 2023

Description

We no longer have stdlib/types/types.hpp in barretenberg. Instead, we intend to declare typedefs locally as and when necessary. This PR updates bb submodule to incorporate latest changes and then ensures that we use local typedefs instead of global ones. This would allow us to run different parts of circuits infrastructure with different composers.

Note that we point to aztec3-temporary branch on barretenberg (based off the latest master). This is because we still need large number of generators while using Ultraplonk in aztec3.

tldr:

  1. Updates bberg submodule to point to latest changes (points to aztec3-temporary branch)
  2. All of the circuits code now have locally defined Composer = plonk::UltraComposer, so we're using Ultraplonk in a3.
  3. All the hard-coded state constants have been changed as we now use pedersen stuff from ultraplonk for merkle hashing
  4. Fixed the issue of rollup tests crashing locally

Resolves: AztecProtocol/aztec3-circuits#191
Resolves AztecProtocol/aztec3-circuits#187

Checklist:

  • I have reviewed my diff in github, line by line.
  • Every change is related to the PR description.
  • I have linked this pull request to the issue(s) that it resolves.
  • There are no unexpected formatting changes, superfluous debug logs, or commented-out code.
  • The branch has been merged or rebased against the head of its merge target.
  • I'm happy for the PR to be merged at the reviewer's next convenience.

@suyash67 suyash67 force-pushed the sb/refactor-types branch from 2a5e1b1 to 380493e Compare April 19, 2023 18:08
@ludamad
Copy link
Collaborator

ludamad commented Apr 19, 2023

Looks like the memory of the WASM needs to be bumped

@suyash67
Copy link
Contributor Author

suyash67 commented Apr 20, 2023

Looks like the memory of the WASM needs to be bumped

Yeah I guess that is because I am restarting to use ultraplonk?

@ludamad
Copy link
Collaborator

ludamad commented Apr 20, 2023

Probably, we see this when switching provers, I guess they have a bunch of static data or something?

…er fixes.

remove any `stdlib::types`.

update bb to point to temp aztec3.

remove `USE_TURBO`.

Include array package.

Bump wasm memory to use 30 initial pages.

fix abi TS tests.

Fix circuit js test.

remove stdlib/types from init in public kernel circuit.

update abi snapshots.

update bb.

Increase merkle tree test timeout by 2 sec.

Compute empty subtree roots in runtime (doing so in compile time creates issue of empty runtime generator tables)

fix.

Use lookup-pedersen for hashing nullifier leaves.

Fix a merkle tree test.

Bump up merkle tree test timeout by 1 more sec.

TRY large timeout for merkle tests.

Change composer in  `mockedKeys.json` to ultra.

chore: updated contract json keys

increase e2e test timeouts.

e2e timeout increase (again).

revert test filter in merkle tree ts.
@suyash67 suyash67 force-pushed the sb/refactor-types branch from 5692c97 to a695ff7 Compare April 25, 2023 18:12
@suyash67 suyash67 merged commit 9730b9b into master Apr 26, 2023
@suyash67 suyash67 deleted the sb/refactor-types branch April 26, 2023 12:01
suyash67 added a commit that referenced this pull request Apr 26, 2023
[SQUASHED] Update bb, remove stdlib/types/types.hpp and couple of other fixes.

remove any `stdlib::types`.

update bb to point to temp aztec3.

remove `USE_TURBO`.

Include array package.

Bump wasm memory to use 30 initial pages.

fix abi TS tests.

Fix circuit js test.

remove stdlib/types from init in public kernel circuit.

update abi snapshots.

update bb.

Increase merkle tree test timeout by 2 sec.

Compute empty subtree roots in runtime (doing so in compile time creates issue of empty runtime generator tables)

fix.

Use lookup-pedersen for hashing nullifier leaves.

Fix a merkle tree test.

Bump up merkle tree test timeout by 1 more sec.

TRY large timeout for merkle tests.

Change composer in  `mockedKeys.json` to ultra.

chore: updated contract json keys

increase e2e test timeouts.

e2e timeout increase (again).

revert test filter in merkle tree ts.

Fix build post rebase.

Use lookup pedersen hash in native types for merkle hashing.

update empty L2 block hash hard-coded value.

Fix pk native circuit wasm.

remove old code.

remove comments.

remove more logs.
ludamad added a commit that referenced this pull request Jul 14, 2023
* Split Pedersen Hash & Commitment Gadgets (#95)

* [SQUASHED] Pedersen refactor into hash and commitment.

Use lookup pedersen for merkle tree, fixed-base pedersen for commitments.
---------
Co-authored-by: Suyash Bagad <[email protected]>

Port `copy_as_new_witness`.

Port `must_imply`.

`operator++`.

Port changes from `common`.

Port `ecc/groups`.

* [CPM] add missing dependencies to libbarretenberg.a (#154)
---------

* Increase Pedersen Generator indices and subindices. (#169)

* Remove a3 specific types. (#252)

* Address Luke's Comments on `aztec3 -> master` (#263)

* Add must_imply tests.

* Added a test for `field_t::copy_as_new_witness`

* add test for `conditional_assign`

* Added `infinity` test.

* Add `add_affine_test`.

* Tests for Array Object in `stdlib` (#262)

* basic array tests.

* Add `composer_type` while hashing/compressing a vkey.

* Add `contains_recursive_proof` to Recursive VK (#268)

* feat: debug utility for serialization (#290)

* feat: enable asan config

* `array_push` for Generic Type (#291)

* Add Indexed Merkle Tree  (#281)

* remove ts (consulted with Adam and we're good to go). (#292)

* Add cout for verification_key struct (#295)

* compute tree (#298)

* [SQUASHED] fixing `push_array_to_array` method. (#304)

* feat(memory_tree|a3): add sibling path calculations (#301)

* feat(memory_tree): frontier paths

* fix array and resolve merge conflicts (#305)

* Mc/hash vk (#306)

* Increase number of sub-generators to 128.

* Build a3crypto.wasm (#311)

* More Tests on A3 `stdlib` methods (#316)

* test: more vk tests to compare circuit/native/vk_data (#310)

* Mc/hash vk (#306)

* inc num_generators_per_hash_index to 128. (#309)

* fix. (#318)

* Added test for `compute_tree_native`. (#319)

* Install instructions for apt on ubuntu (#312)

* Fix address compilation. (#329)

---------

Co-authored-by: David Banks <[email protected]>
Co-authored-by: Michael Connor <[email protected]>
Co-authored-by: dbanks12 <[email protected]>
Co-authored-by: Santiago Palladino <[email protected]>
Co-authored-by: ludamad <[email protected]>
Co-authored-by: Maddiaa <[email protected]>
Co-authored-by: Santiago Palladino <[email protected]>
Co-authored-by: ludamad <[email protected]>
Co-authored-by: cheethas <[email protected]>
codygunton pushed a commit that referenced this pull request Jan 23, 2024
* Split Pedersen Hash & Commitment Gadgets (#95)

* [SQUASHED] Pedersen refactor into hash and commitment.

Use lookup pedersen for merkle tree, fixed-base pedersen for commitments.
---------
Co-authored-by: Suyash Bagad <[email protected]>

Port `copy_as_new_witness`.

Port `must_imply`.

`operator++`.

Port changes from `common`.

Port `ecc/groups`.

* [CPM] add missing dependencies to libbarretenberg.a (#154)
---------

* Increase Pedersen Generator indices and subindices. (#169)

* Remove a3 specific types. (#252)

* Address Luke's Comments on `aztec3 -> master` (#263)

* Add must_imply tests.

* Added a test for `field_t::copy_as_new_witness`

* add test for `conditional_assign`

* Added `infinity` test.

* Add `add_affine_test`.

* Tests for Array Object in `stdlib` (#262)

* basic array tests.

* Add `composer_type` while hashing/compressing a vkey.

* Add `contains_recursive_proof` to Recursive VK (#268)

* feat: debug utility for serialization (#290)

* feat: enable asan config

* `array_push` for Generic Type (#291)

* Add Indexed Merkle Tree  (#281)

* remove ts (consulted with Adam and we're good to go). (#292)

* Add cout for verification_key struct (#295)

* compute tree (#298)

* [SQUASHED] fixing `push_array_to_array` method. (#304)

* feat(memory_tree|a3): add sibling path calculations (#301)

* feat(memory_tree): frontier paths

* fix array and resolve merge conflicts (#305)

* Mc/hash vk (#306)

* Increase number of sub-generators to 128.

* Build a3crypto.wasm (#311)

* More Tests on A3 `stdlib` methods (#316)

* test: more vk tests to compare circuit/native/vk_data (#310)

* Mc/hash vk (#306)

* inc num_generators_per_hash_index to 128. (#309)

* fix. (#318)

* Added test for `compute_tree_native`. (#319)

* Install instructions for apt on ubuntu (#312)

* Fix address compilation. (#329)

---------

Co-authored-by: David Banks <[email protected]>
Co-authored-by: Michael Connor <[email protected]>
Co-authored-by: dbanks12 <[email protected]>
Co-authored-by: Santiago Palladino <[email protected]>
Co-authored-by: ludamad <[email protected]>
Co-authored-by: Maddiaa <[email protected]>
Co-authored-by: Santiago Palladino <[email protected]>
Co-authored-by: ludamad <[email protected]>
Co-authored-by: cheethas <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants